//当使用 std::enable_shared_from_this 时，基类内部维护了一个 weak_ptr，这个 weak_ptr 指向当前对象。
//但是这个 weak_ptr 只有在对象被 std::shared_ptr 管理时才会被正确初始化
class MyClass : public std::enable_shared_from_this<MyClass> {
public:
    std::shared_ptr<MyClass> getSharedPtr() {
        return shared_from_this();  // 需要内部有 weak_ptr 指向自己
    }
};

// 当执行 std::make_shared<MyClass>() 时，实际创建了：
// 1. MyClass 对象
// 2. 控制块（包含引用计数、weak_ptr等信息）
// 3. 控制块中的 weak_ptr 指向对象本身